Submitting Orders with Multiple Components: Batch OrdersThe New Order List message (MsgType=E) is used by the T4 FIX API to electronically submit (multiple-component) orders to an exchange for execution. Orders with multiple components are also known as Batch Orders. They are identified by its Contingency Type (Tag 1385). Batch orders can only contain (constituent) orders. The New Order List is built by specifying its ContingencyType (Tag 1385), target instrument (Tags 48, 55, 207, 167), account (Tag 1) and by adding each individual order to the TotNoOrders repeating group (Tag 68). The maximum number of constituent components in a batch is currently 6.
This message is used for all strategy types including outright futures, futures options, spreads and multileg strategies. The instrument for which the order is submitted is identified with the following tags: Tag 48 (SecurityID), Tag 55 (Symbol), Tag 207 (SecurityExchange) and Tag 167 (SecurityType). Lists of tradeable securities can be requested with the
Security Definition Request message (MsgType=c).
The Order List must be identified by an unique ListID (Tag 66). In addition, all constituent orders must be uniquely identified with a verbose (# characters >= 12 and <= 20) Client Order Id (Tag 11). The subscribed account (Tag 1) for which the order is submitted must also be provided.
Malformed order messages (including missing required tags, empty tags, invalid tag value range, etc.) will be rejected with a FIX Session
Reject message. Order composition errors are identified with rejection
Execution Reports (Tag 150=8).
Order Types with multiple Components
The T4 FIX API offers the following non-standard
Special Order types which carry multiple components:
Order Definition Fields
The most common selectable fields for the New Order List message include:
Tag | Tag Number |
---|
ContingencyType | 1385 |
TriggerPrice | 10101 |
TriggerStop | 10104 |
TriggerStopTrail | 10105 |
Order Quantity | 38 |
Side | 54 |
Order Type | 40 |
Price | 44 |
Stop Price | 99 |
Time In Force | 59 |
Other Fields
In addition, batch orders may also cover the following input parameters:
Tag | Tag Number | Comments |
---|
MaxShow | 210 | For Icebergs |
TrailingDelta | 10100 | For Trailing Stops |
Activation Type | 10102 | For Queue and Activation orders |
Activation Value | 10103 | For Activation orders |
Account SubscriptionAll order routing including the submission of new orders, cancel-replaces and cancels must be preceded by a successful subscription to the account the order is submitted for. By default, all user accounts are automatically subscribed to. To disable automatic subscription to all user accounts, refer to the
Logon message (with Tag 372=BB). Note that if AutoSubscription is turned off, account subscriptions must be explicitly requested with the
Collateral Inquiry message.
Message Dictionary
Tag | Field Name | Req'd | Comments |
---|
| Standard Header | Y | MsgType = E |
66 | ListID | Y | Unique identifier for the order list. All constituent orders will carry this identifier. |
1385 | ContingencyType | Y | Indicates the type of multiple-order dependency. The valid values are: |
| | | 1 = OCO |
| | | 2 = Auto OCO (OCO prices are entered as differential values from the trade price) |
| | | 3 = Spark |
| | | 4 = Synthetic |
| | | 7 = Auto OCO (OCO prices are entered as full absolute values) |
| | | 8 = Auto OCO Multiple Exits (OCO prices are entered as differential values from the trade price) |
| | | 9 = Auto OCO Multiple Exits (OCO prices are entered as full absolute values) |
394 | BidType | N | Code to identify the type of Bid Request. Valid values are: |
| | | 0 = Non-Disclosed (US/Europe) |
| | | 1 = Disclosed (Japan) |
| | | 2 = None (Default) |
433 | ListExecInstType | N | Identifies the type of ListExecInst (Tag 69). Valid values are: |
| | | 1 = Immediate (Default) |
| | | 2 = Wait for Execution instructions (off-line) |
69 | ListExecInst | N | Free format text message containing list handling and execution instructions. |
1028 | ManualOrderIndicator | N | Indicates if the order was sent Manually (i.e. order action is immediate from a human). Valid values are: |
| | | Y = Order was entered Manually |
| | | N = Order was entered by an Automated System, Program or Algorithm |
58 | Text | N | Free form text. |
68 | NoTotOrders | Y | Number of constituent orders to follow: |
| Start Repeating Group | |
11 | ClOrdId | Y | Unique (Client-Side Order) identifier (ID) for this order component. Maximum number of characters: 20. |
1 | Account | Y | Account (code) for which the order is submitted. |
54 | Side | Y | Side of the market. Valid values are: |
| | | 0 = None (used for Flatten orders) |
| | | 1 = Buy |
| | | 2 = Sell |
38 | OrderQty | Y | The total number of contracts to be executed. Use "0" for OCO components of an AutoOCO. Use "0" (zero) for Flatten orders. |
48 | SecurityID | Y | Security identifier. This is the T4 Market ID. |
55 | Symbol | Y | Symbol. This is the T4 Contract ID. |
207 | SecurityExchange | Y | Exchange at which the security trades. This is the T4 Exchange ID. |
167 | SecurityType | N | Instrument type. Futures="FUT", Options="OPT", Stock="STK", Synthetic="SYN", Binary Option="BIN" |
107 | SecurityDesc | N | Textual description of financial instrument (security identifier). |
201 | PutOrCall | N | For Options. Indicates whether an Option is for a Put or Call. Valid values are: |
| | | 0 = Put |
| | | 1 = Call |
202 | StrikePrice | N | For Options. Indicates the Strike Price of the Option. |
200 | MaturityMonthYear | N | Month and Year of the instrument maturity (format YYYYMM). |
110 | MinQty | N | Minimum quantity of an order to be executed. Only supported by certain exchanges. |
210 | MaxShow | N | Maximum quantity of order contracts to be shown to other market participants. Only supported by certain exchanges. |
40 | OrdType | Y | Order Type (in reference to Price). The valid values are: |
| | | 1 = Market |
| | | 2 = Limit |
| | | 3 = Stop |
| | | 4 = Stop Limit |
| | | J = Market If Touched |
| | | F = Flatten |
| | | N = Join |
| | | H = Hit |
44 | Price | N | Order Price. Required for Limit, Stop-Limit and Market-if-Touched order types. AutoOCO: Value is relative from the Trigger Price (Tag 10101). Negative value is allowed. |
99 | StopPx | N | Stop Order Price. Required for Stops and Stop-Limit order types. AutoOCO: Value is relative from the Trigger Price (Tag 10101). Negative value is allowed. |
59 | TimeInForce | Y | Specifies how long the order remains in effect. Valid values are: |
| | | 0 = Day |
| | | 1 = Good Til Cancel |
| | | 3 = Immediate Or Cancel |
| | | 4 = Fill Or Kill |
21 | HandlInst | N | Instructions for order handling on Broker trading floor. Valid values are: |
| | | 1 = Automated execution order, private, no Broker intervention. Default. |
| | | 2 = Automated execution order, public, Broker intervention OK |
| | | 3 = Manual order, best execution |
77 | OpenClose | N | Indicates whether the resulting position (after a trade) should be an opening position or closing position. |
| | | O = Open |
| | | C = Close |
204 | CustomerOrFirm | N | Used for options when delivering the order to an execution system/exchange to specify if the order is for a customer or the firm placing the order itself. Valid values are: |
| | | 0 = Customer |
| | | 1 = Firm |
10100 | TrailingDelta | N | Price amount by which a Stop order will trail the current market. Only used for Trailing Stops. |
10101 | TriggerPrice | N | The Price at which the batch order will trigger the submittal of (suspended) constituent components. |
10104 | TriggerStop | N | The Stop Price at which the batch order will trigger the submittal of (suspended) constituent components. |
10105 | TriggerStopTrail | N | Trail for the Stop Price for which the batch order will trigger the submittal of (suspended) constituent components. |
10102 | ActivationType | N | Type of Activation orders to be submitted. Refer to T4 User Guide for details on Activation Order types. The valid values are: |
| | | 1 = Immediate |
| | | 2 = At Or Above Trade Price |
| | | 3 = At Or Below Trade Price |
| | | 4 = On Market Mode |
| | | 5 = At or After Time |
| | | 6 = Queue |
10103 | ActivationValue | N | Condition associated with Activation Type. Multiple values are delineated by a colon (";"). Refer to T4 API Guide for Activation Value rules. |
| End Repeating Group | |
| Standard Trailer | Y |
Sample MessagesBatch Order for an OCO
>> 2/27/2013 6:17:29 PM [FIXNEWORDERLIST] 34=5|49=T4Example|56=T4|50=TraderName|52=20130228-00:17:29.985|66=fnl-634975858499851777|1385=1|1=Account1|48=CME_20130300_ESH3|55=ES|207=CME_Eq|167=FUT|433=1|68=2|11=oco-1-634975858499851777|54=1|38=1|40=2|44=149800|59=0|21=2|11=oco-2-634975858499851777|54=1|38=1|40=3|99=149850|59=0|21=2|
[FIXNEWORDERLIST]
[MsgSeqNum] 34 = 5
[SenderCompID] 49 = T4Example
[TargetCompID] 56 = T4
[SenderSubID] 50 = TraderName
[SendingTime] 52 = 20130228-00:17:29.985
[ListID] 66 = fnl-634975858499851777
[ContingencyType] 1385 = 1 (OCO)
[Account] 1 = Account1
[SecurityID] 48 = CME_20130300_ESH3
[Symbol] 55 = ES
[SecurityExchange] 207 = CME_Eq
[SecurityType] 167 = FUT (FUTURE)
[ListExecInstType] 433 = 1 (IMMEDIATE)
[TotNoOrders] 68 = 2
[ClOrdID] 11 = oco-1-634975858499851777
[Side] 54 = 1 (BUY)
[OrderQty] 38 = 1
[OrdType] 40 = 2 (LIMIT)
[Price] 44 = 149800
[TimeInForce] 59 = 0 (DAY)
[HandlInst] 21 = 2 (AUTOMATED_EXECUTION_ORDER_PUBLIC_BROKER_INTERVENTION_OK)
[ClOrdID] 11 = oco-2-634975858499851777
[Side] 54 = 1 (BUY)
[OrderQty] 38 = 1
[OrdType] 40 = 3 (STOP)
[StopPx] 99 = 149850
[TimeInForce] 59 = 0 (DAY)
[HandlInst] 21 = 2 (AUTOMATED_EXECUTION_ORDER_PUBLIC_BROKER_INTERVENTION_OK)
Batch Order for an OCO. Response: Limit Component working
<< 2/27/2013 6:17:30 PM [fixexecutionreport] 34=256|49=T4|56=T4Example|50=T4FIX|52=20130228-00:17:30.016|143=US,IL|1=Account1|11=oco-1-634975858499851777|66=fnl-634975858499851777|17=48103.6421035170_ESH3.6349758585347000006.1.3512E303|150=0|37=3512E303-2379-41A8-A3AC-40CB40D91CFB|39=0|48=CME_20130300_ESH3|55=ES|207=CME_Eq|200=201303|59=0|107=E-mini S&P 500 Mar13|54=1|167=FUT|38=1|40=2|44=149800|60=20130228-00:17:33.470|21=1|204=0|1385=1|
[FIXEXECUTIONREPORT]
[MsgSeqNum] 34 = 256
[SenderCompID] 49 = T4
[TargetCompID] 56 = T4Example
[SenderSubID] 50 = T4FIX
[SendingTime] 52 = 20130228-00:17:30.016
[TargetLocationID] 143 = US,IL
[Account] 1 = Account1
[ClOrdID] 11 = oco-1-634975858499851777
[ListID] 66 = fnl-634975858499851777
[ExecID] 17 = 48103.6421035170_ESH3.6349758585347000006.1.3512E303
[ExecType] 150 = 0 (NEW)
[OrderID] 37 = 3512E303-2379-41A8-A3AC-40CB40D91CFB
[OrdStatus] 39 = 0 (NEW)
[SecurityID] 48 = CME_20130300_ESH3
[Symbol] 55 = ES
[SecurityExchange] 207 = CME_Eq
[MaturityMonthYear] 200 = 201303
[TimeInForce] 59 = 0 (DAY)
[SecurityDesc] 107 = E-mini S&P 500 Mar13
[Side] 54 = 1 (BUY)
[SecurityType] 167 = FUT (FUTURE)
[OrderQty] 38 = 1
[OrdType] 40 = 2 (LIMIT)
[Price] 44 = 149800
[TransactTime] 60 = 20130228-00:17:33.470
[HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION)
[CustomerOrFirm] 204 = 0 (CUSTOMER)
[ContingencyType] 1385 = 1 (OCO)
Batch Order for an OCO. Response: Stop Component working
<< 2/27/2013 6:17:30 PM [fixexecutionreport] 34=258|49=T4|56=T4Example|50=T4FIX|52=20130228-00:17:30.234|143=US,IL|1=T4Example|11=oco-2-634975858499851777|66=fnl-634975858499851777|17=48104.6421035171_ESH3.6349758585347500006.1.43C8EAEF|150=0|37=43C8EAEF-F849-4785-84D9-9EED6EFF6F5F|39=0|48=CME_20130300_ESH3|55=ES|207=CME_Eq|200=201303|59=0|107=E-mini S&P 500 Mar13|54=1|167=FUT|38=1|40=3|99=149850|60=20130228-00:17:33.475|21=1|204=0|1385=1|
[FIXEXECUTIONREPORT]
[MsgSeqNum] 34 = 258
[SenderCompID] 49 = T4
[TargetCompID] 56 = T4Example
[SenderSubID] 50 = T4FIX
[SendingTime] 52 = 20130228-00:17:30.234
[TargetLocationID] 143 = US,IL
[Account] 1 = Account1
[ClOrdID] 11 = oco-2-634975858499851777
[ListID] 66 = fnl-634975858499851777
[ExecID] 17 = 48104.6421035171_ESH3.6349758585347500006.1.43C8EAEF
[ExecType] 150 = 0 (NEW)
[OrderID] 37 = 43C8EAEF-F849-4785-84D9-9EED6EFF6F5F
[OrdStatus] 39 = 0 (NEW)
[SecurityID] 48 = CME_20130300_ESH3
[Symbol] 55 = ES
[SecurityExchange] 207 = CME_Eq
[MaturityMonthYear] 200 = 201303
[TimeInForce] 59 = 0 (DAY)
[SecurityDesc] 107 = E-mini S&P 500 Mar13
[Side] 54 = 1 (BUY)
[SecurityType] 167 = FUT (FUTURE)
[OrderQty] 38 = 1
[OrdType] 40 = 3 (STOP)
[StopPx] 99 = 149850
[TransactTime] 60 = 20130228-00:17:33.475
[HandlInst] 21 = 1 (AUTOMATED_EXECUTION_ORDER_PRIVATE_NO_BROKER_INTERVENTION)
[CustomerOrFirm] 204 = 0 (CUSTOMER)
[ContingencyType] 1385 = 1 (OCO)
For a description and samples of other multiple-component order types, please refer to the T4 FIX API Order Routing sidebar.
FIX API Home Page.